var insuranceApp = angular.module('insuranceApp', ['ui.router', 'ngResource'])
insuranceApp.constant('httpConfig', {
    api: '',
    headers: {
        'content-type': 'application/json'
    }
})
insuranceApp.run(['$location', '$rootScope', function($location, $rootScope){
    $rootScope.$on('$stateChangeSuccess', function (event, currentRoute) {
        //update title hack for ios webview
        var iframe = document.createElement('iframe')
        if (currentRoute.title) $rootScope.pageTitle = currentRoute.title
        iframe.src = '/static/favicon.ico'
        iframe.style.display = 'none'
        iframe.onload = function () {
            setTimeout(function () {
                document.body.removeChild(iframe)
            }, 10)
        }
        document.body.appendChild(iframe)
    })
}])
//七牛图片输出
insuranceApp.filter('resetImg', function () {
    return function (val) {
        if (val) {
            return val + '?imageView2/2/w/300/q/80'
        }
    }
})
//解决click 300ms延迟用touchstart事件替换click事件
insuranceApp.directive('ngTouchstart', function () {
    return {
        controller: ['$scope', '$element', function ($scope, $element) {
            $element.bind('touchstart', onTouchStart)
            function onTouchStart() {
                var method = $element.attr('ng-touchstart')
                $scope.$apply(method)
            }
        }]
    }
})
insuranceApp.factory('myFunction', function () {
    return {
        //身份证验证
        verifyId: function (code) {
            var city = {
                11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江 ", 31: "上海", 32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西", 37: "山东", 41: "河南", 42: "湖北 ", 43: "湖南", 44: "广东", 45: "广西", 46: "海南", 50: "重庆", 51: "四川", 52: "贵州", 53: "云南", 54: "西藏 ", 61: "陕西", 62: "甘肃", 63: "青海", 64: "宁夏", 65: "新疆", 71: "台湾", 81: "香港", 82: "澳门", 91: "国外 "
            }
            var reg = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/
            var pass = true
            if(!reg.test(code)){
                pass = false
            }else if (!city[code.substr(0, 2)]) {
                pass = false
            } else {
                //18位身份证需要验证最后一位校验位
                if (code.length == 18) {
                    code = code.split('')
                    //加权因子
                    var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
                    //校验位
                    var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2]
                    var sum = 0
                    var ai = 0
                    var wi = 0
                    for (var i = 0; i < 17; i++) {
                        ai = code[i]
                        wi = factor[i]
                        sum += ai * wi
                    }
                    var last = parity[sum % 11]
                    if (parity[sum % 11] != code[17]) {
                        pass = false;
                    }
                }
            }
            return pass
        }
    }
})